package cn.zhang.reimbursement_1.controller;

import cn.zhang.reimbursement_1.model.User;
import cn.zhang.reimbursement_1.request.LoginRequest;
import cn.zhang.reimbursement_1.request.UserRequest;
import cn.zhang.reimbursement_1.service.UserService;
import cn.zhang.reimbursement_1.tools.JsonData;
import cn.zhang.reimbursement_1.vo.UserVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/admin/user")
@Api(tags = "用户模块")
public class UserController {
    @Autowired
    private UserService userService;


    @ApiOperation("添加用户接口")
    @PostMapping("/save_user")
    public JsonData saveUser(@RequestBody UserRequest userRequest){
        JsonData jsonData = userService.saveUser(userRequest);
        return jsonData;
    }

    @ApiOperation("登录接口")
    @PostMapping("/login")
    public JsonData login(@RequestBody LoginRequest loginRequest){
        JsonData jsonData  = userService.login(loginRequest);
        return jsonData;
    }

    @ApiOperation("分页查询用户")
    @GetMapping("/page_user")
    public JsonData pageUser(@RequestParam(value = "pageSize",defaultValue = "10",required = false) int pageSize
            ,@RequestParam(value = "pageNum",defaultValue = "1",required = false) int pageNum
            ,@RequestParam(value = "like",defaultValue = "",required = false)String like){

        JsonData jsonData = userService.pageUser(pageNum,pageSize,like);
        return jsonData;
    }


    @ApiOperation("修改用户")
    @PutMapping("/update_user")
    public JsonData updateUser(@RequestBody UserVO user){
        JsonData jsonData = userService.updateUser(user);
        return jsonData;

    }

    @ApiOperation("删除用户")
    @DeleteMapping("/del_user")
    public JsonData delUser(@RequestParam Integer userId){
        JsonData jsonData = userService.delUser(userId);
        return jsonData;
    }


    @ApiOperation("用户修改密码")
    @GetMapping("/update_pwd")
    public JsonData updatePwd(@RequestParam String pwd){
        JsonData jsonData = userService.updatePwd(pwd);
        return jsonData;
    }

    @ApiOperation("获取个人信息")
    @GetMapping("/datile")
    public JsonData getDatile(){
        JsonData  jsonData = userService.getDatile();
        return jsonData;
    }

    @ApiOperation("得到全部用户")
    @GetMapping("/get_all_usets")
    public JsonData getAllUsers(){

        JsonData jsonData = userService.getAll();
        return jsonData;
    }

}
